package algo3.pruebas.barcosTest;
import algo3.modelo.Direccion;
import algo3.modelo.Posicion;
import algo3.modelo.armas.Danio;
import algo3.modelo.armas.DisparoConvencional;
import algo3.modelo.barcos.Barco;

abstract class BarcoDaniableTestConHerencia extends BarcoAbstractTestConHerencia{
	
	abstract Barco crearBarco(Posicion posicion, Direccion direccion, Direccion orientacion);

    public void testDaniarBarcoDisparando(){
    	Posicion pos = new Posicion(4, 3);
        Barco barco = crearBarco(pos, Direccion.DERECHA, Direccion.DERECHA);
        int durabilidadInicial = barco.getPartes().get(0).getDurabilidad(); 
        for(int i=0;i<durabilidadInicial;i++){
        	barco.recibirDanio(new Danio(pos, DisparoConvencional.class));
        }
        assertEquals(Barco.Estado.DANIADO, barco.getEstado());
    }
}
